package entity;

import java.sql.Date;
import java.util.Calendar;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

import fachade.PrincipalFachade;
import negocio.Comprobante;
import negocio.ItemComprobante;

public class ComprobanteBD {

	private Integer id_comprobante;
	private Integer numero_comprobante;
	private EmpresaBD empresa;
	private java.util.Date fecha_emision;
	private java.util.Date fecha_trafico_desde;
	private java.util.Date fecha_trafico_hasta;
	private String tipo_compobante;
	private String cae;
	private String observacion;
	private List<ItemComprobanteBD> itemsComprobante;
	
	public List<ItemComprobanteBD> getItemsComprobante() {
		return itemsComprobante;
	}

	public void setItemsComprobante(List<ItemComprobanteBD> itemsComprobante) {
		this.itemsComprobante = itemsComprobante;
	}

	public ComprobanteBD(){}

	public ComprobanteBD(Comprobante nuevoComprobante) {
		this.empresa = PrincipalFachade.getInstance().getiEmpresaFachade().getEmpresaBDyId(nuevoComprobante.getCliente().getCodigoEmpresa());
		
		this.fecha_emision = new Date(nuevoComprobante.getFechaEmision().getTime());
		this.fecha_trafico_desde = new Date(nuevoComprobante.getFechaDesde().getTime());
		this.fecha_trafico_hasta = new Date(nuevoComprobante.getFechaHasta().getTime());
		
		this.setObservacion(nuevoComprobante.getObservaciones());
		
		this.setTipo_compobante(nuevoComprobante.getTipoComprobante());
		
		itemsComprobante = new LinkedList<ItemComprobanteBD>();

		for (Iterator iterator = nuevoComprobante.getItemsComprobante().iterator(); iterator.hasNext();) {
			ItemComprobante itemComprobante = (ItemComprobante) iterator.next();
			ItemComprobanteBD itemComprobanteBD = new ItemComprobanteBD(itemComprobante);
			this.itemsComprobante.add(itemComprobanteBD);
		}
		
	}

	public Integer getId_comprobante() {
		return id_comprobante;
	}

	public void setId_comprobante(Integer id_comprobante) {
		this.id_comprobante = id_comprobante;
	}

	public Integer getNumero_comprobante() {
		return numero_comprobante;
	}

	public void setNumero_comprobante(Integer numero_comprobante) {
		this.numero_comprobante = numero_comprobante;
	}

	public java.util.Date getFecha_emision() {
		return fecha_emision;
	}

	public void setFecha_emision(Date fecha_emision) {
		this.fecha_emision = fecha_emision;
	}

	public java.util.Date getFecha_trafico_desde() {
		return fecha_trafico_desde;
	}

	public void setFecha_trafico_desde(Date fecha_trafico_desde) {
		this.fecha_trafico_desde = fecha_trafico_desde;
	}

	public java.util.Date getFecha_trafico_hasta() {
		return fecha_trafico_hasta;
	}

	public void setFecha_trafico_hasta(Date fecha_trafico_hasta) {
		this.fecha_trafico_hasta = fecha_trafico_hasta;
	}

	public String getTipo_compobante() {
		return tipo_compobante;
	}

	public void setTipo_compobante(String tipo_compobante) {
		this.tipo_compobante = tipo_compobante;
	}

	public String getCae() {
		return cae;
	}

	public void setCae(String cae) {
		this.cae = cae;
	}

	public String getObservacion() {
		return observacion;
	}

	public void setObservacion(String observacion) {
		this.observacion = observacion;
	}

	public EmpresaBD getEmpresa() {
		return empresa;
	}

	public void setEmpresa(EmpresaBD empresa) {
		this.empresa = empresa;
	}

}
